package com.br.mercarad.db.vos;

import java.util.ArrayList;

import javax.security.auth.Subject;

public class TabelaVO {
	
	private String nome;
	private String sulfixo;
	private ArrayList<CampoVO> campos;
	private String ddl;
	
	public void setCampoIsPk(String namecampo){
		for (CampoVO campo : campos) {
			if (campo!=null && campo.getNome()!=null &&
					campo.getNome().equalsIgnoreCase(namecampo)){
				campo.setIsPrimary(true);
				return;
			}
		}
		
	}
	
	public String getNome() {
		return nome;
	}
	
	public String getNomeSing() {
		return nome.substring(0,nome.length()-1);
	}
	public String getNomeInitCap(){
		return nome.replaceFirst(nome.substring(0,1), nome.substring(0,1).toUpperCase());
	}
	public String getNomeInitCapSingular(){
		return getNomeSing().replaceFirst(getNomeSing().substring(0,1), getNomeSing().substring(0,1).toUpperCase());
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public ArrayList<CampoVO> getCampos() {
		return campos;
	}
	public void setCampos(ArrayList<CampoVO> campos) {
		this.campos = campos;
	}
	public String getSulfixo() {
		return sulfixo;
	}
	public void setSulfixo(String sulfixo) {
		this.sulfixo = sulfixo;
	}

	public String getDdl() {
		return ddl;
	}

	public void setDdl(String ddl) {
		this.ddl = ddl;
	}
	
	public String getDdlFormated(){
		return this.ddl.replaceAll(",", ",\n");
	}
	
	public String getPksWithTypes(){
		StringBuilder sb = new StringBuilder();
		for (CampoVO campo : campos) {
			if (campo.getIsPrimary()){
				sb.append(campo.getTypeJavaPrimitive()+" "+campo.getNome());
			}
				
		}
		return sb.toString();
	}
	
	
}
